import moment from "moment";
import { getDefaultUserInfo } from "./utils";

const itemList = [
    {
        id: 1,
        name: '小铲子',
        type: 'shovel',
        desc: '用于铲除植物，不返还种植消耗。',
        price: 1, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用(支持使用指令)
        returnRatio: 0, // 铲除植物返还比例 铲子类道具独有
        returnProbability: 0, // 铲除植物返还概率 铲子类道具独有
        alias: ['小铲子', '铲子'],
        isCanEquipment: true, // 是否可装备(支持装备指令)
    },
    {
        id: 2,
        name: '银币',
        type: 'deal',
        desc: '通用货币，可用于兑换商品或以一定比例换取金钱\n不可转让与交易。',
        price: 50, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 3,
        name: '金币',
        type: 'deal',
        desc: '通用货币，可用于兑换商品或以一定比例换取金钱\n不可转让与交易。',
        price: 100, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 4,
        name: '钻石',
        type: 'deal',
        desc: '通用货币，可用于兑换商品或以一定比例换取金钱\n不可转让与交易。',
        price: 1000, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 5,
        name: '木制铲子',
        type: 'shovel',
        desc: '用于铲除植物，有一定的概率返还对应比例的种植消耗。',
        price: 10, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        returnRatio: 0.2, // 铲除植物返还比例 铲子类道具独有
        returnProbability: 0.5, // 铲除植物返还概率 铲子类道具独有
        isCanUse: false, // 是否可以使用
        isCanEquipment: true, // 是否可装备(支持装备指令)

    },
    {
        id: 6,
        name: '铁制铲子',
        type: 'shovel',
        desc: '用于铲除植物，有一定的概率返还对应比例的种植消耗。',
        price: 50, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        returnRatio: 0.4, // 铲除植物返还比例 铲子类道具独有
        returnProbability: 0.5, // 铲除植物返还概率 铲子类道具独有
        isCanUse: false, // 是否可以使用
        isCanEquipment: true, // 是否可装备(支持装备指令)

    },
    {
        id: 7,
        name: '长柄铲子',
        type: 'shovel',
        desc: '用于铲除植物，有一定的概率返还对应比例的种植消耗。',
        price: 50, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        returnRatio: 1, // 铲除植物返还比例 铲子类道具独有
        returnProbability: 0.2, // 铲除植物返还概率 铲子类道具独有
        isCanUse: false, // 是否可以使用
        isCanEquipment: true, // 是否可装备(支持装备指令)

    },
    {
        id: 8,
        name: '工兵铲',
        type: 'shovel',
        desc: '用于铲除植物，有一定的概率返还对应比例的种植消耗。',
        price: 50, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        returnRatio: 0.2, // 铲除植物返还比例 铲子类道具独有
        returnProbability: 1, // 铲除植物返还概率 铲子类道具独有
        isCanUse: false, // 是否可以使用
        isCanEquipment: true, // 是否可装备(支持装备指令)

    },
    {
        id: 9,
        name: '金铲子',
        type: 'shovel',
        desc: '用于铲除植物，有一定的概率返还对应比例的种植消耗。',
        price: 200, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        returnRatio: 1, // 铲除植物返还比例 铲子类道具独有
        returnProbability: 0.5, // 铲除植物返还概率 铲子类道具独有
        isCanUse: false, // 是否可以使用
        isCanEquipment: true, // 是否可装备(支持装备指令)

    },
    {
        id: 10,
        name: '铲子礼盒',
        type: 'giftBox',
        desc: '随机获得一把铲子，你很疑惑你的邻居从哪里弄来这么多铲子。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        gift: [ // 礼包内容
            { type: 'item', id: 1, num: 1 },
            { type: 'item', id: 5, num: 1 },
            { type: 'item', id: 6, num: 1 },
            { type: 'item', id: 7, num: 1 },
            { type: 'item', id: 8, num: 1 },
            { type: 'item', id: 9, num: 1 },
            { type: 'item', id: 12, num: 1 },
        ],
        isCanUse: true, // 是否可以使用
        alias: ['铲礼盒'],
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 11,
        name: '戴夫的礼物',
        type: 'giftBox',
        desc: '表面布满了灰尘，旁边还贴着你亲爱的邻居的名字。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        gift: [ // 礼包内容
            { type: 'item', id: 9, num: 1 },
            { type: 'item', id: 12, num: 1 },
            { type: 'item', id: 13, num: 1 },
            { type: 'item', id: 14, num: 1 },
            { type: 'item', id: 15, num: 1 },
            { type: 'item', id: 16, num: 1 },
            { type: 'item', id: 17, num: 1 },
            { type: 'item', id: 18, num: 1 },
            { type: 'item', id: 19, num: 1 },
        ],
        isCanUse: true, // 是否可以使用
        alias: ['戴夫的礼盒', '戴夫'],
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 12,
        name: '废弃的铲子',
        type: 'shovel',
        desc: '一把......铲子....感觉随时都要断掉了。',
        price: 0, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        returnRatio: 0, // 铲除植物返还比例 铲子类道具独有
        returnProbability: 0, // 铲除植物返还概率 铲子类道具独有
        isCanUse: false, // 是否可以使用
        isCanEquipment: true, // 是否可装备(支持装备指令)

    },
    {
        id: 13,
        name: '磨损的银币',
        type: 'deal',
        desc: '已经变形了，是被僵尸啃过了吗。',
        price: 10, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 14,
        name: '腐烂的垃圾',
        type: 'deal',
        desc: '这也太臭了。',
        price: 0, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 15,
        name: '钻石加工残渣',
        type: 'deal',
        desc: '即使是副产物，还是有相应的价值，我想应该是。',
        price: 100, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 16,
        name: '报纸',
        type: 'deal',
        desc: '很久之前的报纸，保存得很好。',
        price: 2, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 17,
        name: '铁桶',
        type: 'deal',
        desc: '有股腐烂的味道。',
        price: 5, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 18,
        name: '阳光瓶',
        type: 'utils',
        desc: '打开可获取随机数量的可用阳光。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: true, // 是否可以使用
        changeType: 'data', // 更改的类型 data: 更改用户信息, plant: 更改用户植物信息
        callback: (data) => {
            let sun = Math.floor(Math.random() * 50 + 50)
            let res = {
                ...data,
                sunTotal: data.sunTotal + sun,
            }
            return {
                data: res,
                useSuccessTip: '你打开了阳光瓶，获得了' + sun + '阳光'
            }
        },
        alias: ['阳光瓶'],
        isCanEquipment: false, // 是否可装备(支持装备指令)

    },
    {
        id: 19,
        name: '阳光满屋图腾',
        type: 'utils',
        desc: '获取一定数量的阳光，直到可收取阳光达到最大值。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: true, // 是否可以使用
        alias: ['阳光满屋图腾', '阳光满屋'],
        changeType: 'data', // 更改的类型 data: 更改用户信息, plant: 更改用户植物信息
        callback: (data) => {
            let res = {
                ...data,
                sun: data.maxSun,
            }
            return {
                data: res,
                useSuccessTip: '你感觉光芒包围着你，快去收取阳光吧！'
            }
        },
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 20,
        name: '种植图鉴',
        type: 'equipment',
        desc: '可以查看植物的具体情报，升级可种植更多种类植物。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        level: 1, // 装备等级 装备类道具独有
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 21,
        name: '生命图腾',
        type: 'utils',
        desc: '随机恢复花园内部分植物的所有生命值。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: true, // 是否可以使用
        alias: ['生命图腾'],
        changeType: 'plant', // 更改的类型 data: 更改用户信息, plant: 更改用户植物信息
        callback: (plant = []) => {
            let res = plant.map(item => {
                let hasCanUse = Math.random() * 10 > 5 // 恢复概率为 50%
                if (hasCanUse) item.hp = item.maxHp
                return item
            })
            return {
                plant: res,
                useSuccessTip: '花园充斥着生命的气息，你感觉你的植物宛如新生一般'
            }
        },
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 22,
        name: '野性生长图腾',
        type: 'utils',
        desc: '恢复花园内所有植物的一定比例生命值。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: true, // 是否可以使用
        alias: ['野性生长图腾'],
        changeType: 'plant', // 更改的类型 data: 更改用户信息, plant: 更改用户植物信息
        callback: (plant = []) => {
            let res = plant.map(item => {
                item.hp = item.hp + item.maxHp * 0.5
                if (item.hp > item.maxHp) item.hp = item.maxHp
                return item
            })
            return {
                plant: res,
                useSuccessTip: '花园内所有的植物都长出了新枝嫩叶，它们都恢复了活力'
            }
        },
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 24,
        name: '《植物学》',
        type: 'equipment',
        desc: '解锁强化植物功能，升级可增加植物等级上限。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        level: 1, // 装备等级 装备类道具独有
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 25,
        name: '天启石',
        type: 'weatherUtils',
        desc: '指定变更当前天气，且在12小时内天气不会自然变更。。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: true, // 是否可以使用
        alias: ['天启石', '天启'],
        weatherUtilsAction: 'selectWeatherAndLock',
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 26,
        name: '避风护符',
        type: 'weatherUtils',
        desc: '使用后随机变更当前天气。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: true, // 是否可以使用
        alias: ['避风护符', '避风'],
        weatherUtilsAction: 'changeWeather',
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 27,
        name: '僵尸头骨',
        type: 'deal',
        desc: '对脑子的激情满溢而出...',
        price: 10, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 28,
        name: '腐烂的僵尸头骨',
        type: 'deal',
        desc: '散发出恶臭的骨架，应该没人会需要这种东西。',
        price: 1, // 卖出价格,
        isCanSell: true, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 29,
        name: '安息乡的钥匙',
        type: 'deal',
        desc: `附近最大的废弃墓园"安息乡"的大门钥匙，持有可解锁僵尸相关玩法。`,
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: false, // 是否可丢弃
        isCanUse: false, // 是否可以使用
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 30,
        name: '资源补给箱',
        desc: '打开后可获得随机数量金钱，小概率获得稀有物品。',
        type: 'giftBox',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        gift: [ // 礼包内容
            { type: 'money', value: 1, num: 8 },
            { type: 'money', value: 5, num: 8 },
            { type: 'money', value: 10, num: 5 },
            { type: 'money', value: 20, num: 5 },
            { type: 'money', value: 50, num: 1 },
            { type: 'item', id: 2, num: 1 },
        ],
        isCanUse: true, // 是否可以使用
        alias: ['资源补给箱', '资源补给', '补给箱', '资源箱'],
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 31,
        name: '金盏花的赠礼',
        desc: '打开后可获得随机数量金钱。',
        type: 'giftBox',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        gift: [ // 礼包内容
            { type: 'money', value: 10, num: 1 },
            { type: 'money', value: 15, num: 1 },
            { type: 'money', value: 20, num: 1 },
            { type: 'money', value: 25, num: 1 },
            { type: 'money', value: 30, num: 1 },
        ],
        isCanUse: true, // 是否可以使用
        alias: ['金盏花的赠礼', '金盏花赠礼', '金赠礼', '金礼'],
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 32,
        name: '金盏花的礼盒',
        desc: '打开后有几率获得大量金钱。',
        type: 'giftBox',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        gift: [ // 礼包内容
            { type: 'money', value: 5, num: 1 },
            { type: 'money', value: 10, num: 1 },
            { type: 'money', value: 15, num: 1 },
            { type: 'money', value: 20, num: 1 },
            { type: 'money', value: 25, num: 1 },
            { type: 'money', value: 30, num: 1 },
            { type: 'money', value: 100, num: 1 },
            { type: 'money', value: 200, num: 1 },
        ],
        isCanUse: true, // 是否可以使用
        alias: ['金盏花的礼盒', '金盏花礼盒', '金礼盒', '金盒'],
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 33,
        name: '花园深处的庇护',
        desc: '立即重置当前的庇护状态，获得持续一小时的庇护。',
        type: 'utils',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: false, // 是否可转让(无条件交易)
        isCanTrade: false, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: true, // 是否可以使用
        alias: ['花园深处的庇护', '花园庇护', '庇护'],
        changeType: 'data', // 更改的类型 data: 更改用户信息, plant: 更改用户植物信息
        callback: (data = getDefaultUserInfo()) => {
            data.protectEndTime = moment().add(1, 'hours').format('YYYY-MM-DD HH:mm:ss')
            return {
                data,
                useSuccessTip: `游荡的僵尸被隔绝在花园之外，花园暂时安全了...\n庇护将在${data.protectEndTime}结束喵~`
            }
        },
        isCanEquipment: false, // 是否可装备(支持装备指令)
    },
    {
        id: 34,
        name: '向日葵瓶',
        type: 'sunReservoir',
        desc: '装备后，阳光最大储存量增加200%\n每次收获阳光时耐久度减少1点，耐久初始5点。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用(支持使用指令)
        alias: ['向日葵瓶', '葵葵瓶', '葵瓶'],
        isCanEquipment: true, // 是否可装备(支持装备指令)
        durability: 5, // 耐久度 阳光储存器独有
        value: 3, // 额外储存量大小
    },
    {
        id: 35,
        name: '晴天娃娃',
        type: 'sunReservoir',
        desc: '装备后，阳光最大储存量增加400%\n每次收获阳光时耐久度减少1点，耐久初始5点。',
        price: 0, // 卖出价格,
        isCanSell: false, // 是否可以卖出
        isCanTransfer: true, // 是否可转让(无条件交易)
        isCanTrade: true, // 是否可交易
        isCanDiscard: true, // 是否可丢弃
        isCanUse: false, // 是否可以使用(支持使用指令)
        alias: ['晴天娃娃', '晴天', '娃娃'],
        isCanEquipment: true, // 是否可装备(支持装备指令)
        durability: 5, // 耐久度 阳光储存器独有
        value: 5, // 额外储存量大小
    },
]

const itemType = {
    utils: '可使用的消耗型道具',
    equipment: '可装备的道具',
    deal: '交易用道具',
    battleExpend: '战斗消耗型道具',
    shovel: '铲子类道具',
    giftBox: '礼包类道具',
    sunReservoir: '阳光储存器',
}

export {
    itemList
}